/*Fonction qui en fonction des patterns génère le tableau d'items à afficher à l'écran*/
function createItem(joueur, x){
    var Item;
    if(joueur == "joueur-dist")
    {
       Item = "item-dist";
        pattern = "pattern-dist";
    } else {
       Item = "item";
        pattern = "pattern";
    }
    if(v[pattern].length > 0){
        if(v[pattern][0].x == "no"){
            if(x == null){ 
                v[pattern][0].x = 864;
            } else {
                v[pattern][0].x = x;
            }
        }
        var colActuelle = v["constantes"].matrix[v[pattern][0].id].col[v[joueur].col].lig;
        for(var l in colActuelle)
            {
                v[joueur].ligne = parseInt(l, 10);
                if(colActuelle[l] != 0)
                    {
                        var item = new Object();	
                        if(x == null){ 
                            item.x = 864;
                        } else {
                            item.x = x;
                        }
                        item.y = l*16;
                        if(Math.abs(colActuelle[l]) == 1){
                                item.type = "stone";
                        }
                        if(Math.abs(colActuelle[l]) == 2){
                                item.type = "fire";
                        }
                        if(Math.abs(colActuelle[l]) == 3){
                                item.type = "heal";
                        }
                        if(Math.abs(colActuelle[l]) == 4){
                                item.type = "shield";
                        }
                        if(Math.abs(colActuelle[l]) == 5){
                                item.type = "special";
                        }
                        if(Math.abs(colActuelle[l]) == 6){
                                item.type = "fog";
                        }
                        item.joueur = joueur;
                        item.node = new Image();

                        v[Item].push(item);
                    }
            }
        if(isPatternFinish(joueur)){
            v[pattern].push(v[pattern][0]);
            v[pattern].splice(0,1);
            v[joueur].col = 0; v[joueur].ligne = 0;
        } else {
            v[joueur].col++;
        }
    }
}

/*On vérifie si à un moment donné le pattern est terminé ou non*/
function isPatternFinish(joueur)
{
    if(joueur == "joueur-dist")
    {
        pattern = "pattern-dist";
    } else {
        pattern = "pattern";
    }
    var col = v[joueur].col; var ligne = v[joueur].ligne;
    if(col == (v["constantes"].matrix[v[pattern][0].id].col.length - 1))
        {
            if(ligne == (v["constantes"].matrix[v[pattern][0].id].col[col].lig.length - 1))
                {
                    return true;
                }
        }
        return false;
}

/*Fonction qui détruit les items lorsqu'ils ne sont plus censés être affichés*/
function detruireItem(Item, i){
    v[Item].splice(i,1);
}

/*Fonction qui tire au sort une liste de pattern*/
function initItems(){
	for(var i=0; i<20; i++){
                v["pattern"][i] = new Object();
		v["pattern"][i].id = Math.floor(Math.random()*31);
                v["pattern"][i].x = "no";
	}
}

/*Fonction qui actualise la liste des items affichés chez l'adversaire à chaque reception d'une "mise à jour" des patterns*/
function displayPattern(joueur, pattern_id, x)
{    
    var Item;
    if(joueur == "joueur-dist")
    {
       Item = "item-dist";
    } else {
       Item = "item";
    }
    for(var c in v["constantes"].matrix[pattern_id].col)
    {
        var xEffectif = x + (c * 16);
        var colActuelle = v["constantes"].matrix[pattern_id].col[c].lig;
        for(var l in colActuelle)
            {
                if(colActuelle[l] != 0)
                    {
                        var item = new Object();	
                        item.x = xEffectif;
                        item.y = l*16;
                        if(Math.abs(colActuelle[l]) == 1){
                                item.type = "stone";
                        }                        
                        if(Math.abs(colActuelle[l]) == 2){
                                item.type = "fire";
                        }
                        if(Math.abs(colActuelle[l]) == 3){
                                item.type = "heal";
                        }
                        if(Math.abs(colActuelle[l]) == 4){
                                item.type = "shield";
                        }
                        if(Math.abs(colActuelle[l]) == 5){
                                item.type = "special";
                        }
                        if(Math.abs(colActuelle[l]) == 6){
                                item.type = "fog";
                        }
                        item.joueur = joueur;
                        item.node = new Image();

                        v[Item].push(item);
                    }
            }
    }
	actualizeScreen(joueur);
}